/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.documentar.model;

import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import javax.swing.DefaultComboBoxModel;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author Santos
 */
public class DocumentarModel {

    private int codigo;
    private ProdutoModel produto;
    private CategoriaVersaoModel categoria;
    private String aba;
    private String posicao;
    private String nomeCampo;
    private String funcaoParamentro;
    private String exemplo;
    private String imagemTela;
    private String anexo;
    private String linkVideo;
    private char ativo;
    private String sql;
    private String nomeTela;

    public String getNomeTela() {
        return nomeTela;
    }

    public void setNomeTela(String nomeTela) {
        this.nomeTela = nomeTela;
    }

    public String getSql() {
        return sql;
    }

    public String getSqlTextArea() {
        return sql.replaceAll("\"", "'");
    }

    public void setSql(String sql) {
        this.sql = sql.replaceAll("'", "\"");
    }

    /**
     * Ação do script SQL na execução do programa
     */
    private String actionScript;
    /**
     * Modelo de um comboBox para utiliza nas telas
     */
    private DefaultComboBoxModel modelComboBox;
    /**
     * Modelo de uma table para utilizar nas telas
     */
    private DefaultTableModel modelTable;
    /**
     * Lista contendo os dados relacionados da consulta feita na tabela setor.
     * Mas é necessário rever o nome dessa variável, sugestão: lista+Classe
     */
    private List<DocumentarModel> listaDocumentar;
    /**
     * Variavel responsável por recepcionar dados extraidos das consultas
     * executadas na banco de dados
     */
    private ResultSet resultSet;

    public ProdutoModel getProduto() {
        if (produto == null) {
            produto = new ProdutoModel();
        }
        return produto;
    }

    public void setProduto(ProdutoModel produto) {
        this.produto = produto;
    }

    public CategoriaVersaoModel getCategoriaVersao() {
        if (categoria == null) {
            categoria = new CategoriaVersaoModel();
        }
        return categoria;
    }

    public void setCategoriaVersao(CategoriaVersaoModel categoria) {
        this.categoria = categoria;
    }

    public List<DocumentarModel> getListaDocumentar() {
        if (listaDocumentar == null) {
            listaDocumentar = new ArrayList<>();
        }
        return listaDocumentar;
    }

    public void setListaDocumentar(List<DocumentarModel> listaDocumentar) {
        this.listaDocumentar = listaDocumentar;
    }

    public int getCodigo() {
        return codigo;
    }

    public void setCodigo(int codigo) {
        this.codigo = codigo;
    }

    public String getAba() {
        return aba;
    }

    public void setAba(String aba) {
        this.aba = aba;
    }

    public String getPosicao() {
        return posicao;
    }

    public void setPosicao(String posicao) {
        this.posicao = posicao;
    }

    public String getNomeCampo() {
        return nomeCampo;
    }

    public void setNomeCampo(String campo) {
        this.nomeCampo = campo;
    }

    public String getFuncaoParamentro() {
        return funcaoParamentro;
    }

    public void setFuncaoParamentro(String funcaoParamentro) {
        this.funcaoParamentro = funcaoParamentro;
    }

    public String getExemplo() {
        return exemplo;
    }

    public void setExemplo(String exemplo) {
        this.exemplo = exemplo;
    }

    public String getImagemTela() {
        return imagemTela;
    }

    public void setImagemTela(String imagemTela) {
        this.imagemTela = imagemTela;
    }

    public String getAnexo() {
        return anexo;
    }

    public void setAnexo(String anexo) {
        this.anexo = anexo;
    }

    public String getLinkVideo() {
        return linkVideo;
    }

    public void setLinkVideo(String linkVideo) {
        this.linkVideo = linkVideo;
    }

    public char getAtivo() {
        return ativo;
    }

    public void setAtivo(char ativo) {
        this.ativo = ativo;
    }

    public String getActionScript() {
        return actionScript;
    }

    public void setActionScript(String actionScript) {
        this.actionScript = actionScript;
    }

    public DefaultComboBoxModel getModelComboBox() {
        if (modelComboBox == null) {
            modelComboBox = new DefaultComboBoxModel();
            modelComboBox.addElement("ESCOLHER");
        }
        return modelComboBox;
    }

    public void setModelComboBox(DefaultComboBoxModel modelComboBox) {
        this.modelComboBox = modelComboBox;
    }

    public DefaultTableModel getModelTable() {
        if (modelTable == null) {
            modelTable = new DefaultTableModel();
            modelTable.addColumn("Codigo");
            modelTable.addColumn("Produto");
            modelTable.addColumn("Versão");
            modelTable.addColumn("Categoria");
            modelTable.addColumn("Tela");
            modelTable.addColumn("Aba");
            modelTable.addColumn("Posição");
            modelTable.addColumn("Nome Campo");
            modelTable.addColumn("Função Parâmetro");
            modelTable.addColumn("Exemplo");
            modelTable.addColumn("Imagem da Tela");
            modelTable.addColumn("Anexo");
            modelTable.addColumn("Link do Vídeo");
            modelTable.addColumn("Sql");
            modelTable.addColumn("Ativo");

        }
        return modelTable;
    }

    public void setModelTable(DefaultTableModel modelTable) {
        this.modelTable = modelTable;
    }

    public ResultSet getResultSet() {
        return resultSet;
    }

    public void setResultSet(ResultSet resultSet) {
        this.resultSet = resultSet;
    }

    public DocumentarModel getDocumentar(int codigo) {
        DocumentarModel model = null;
        for (DocumentarModel documentarModelo : getListaDocumentar()) {
            if (documentarModelo.getCodigo() == codigo) {
                model = documentarModelo;
                break;
            }
        }
        return model;
    }

}
